The Universal Serial Bus (USB) is a common interconnect format for computer devices. Data is transmitted over a serial connection between a host and a device. Each device is assigned an address form 0-127, allowing multiple devices to communicate with the same host using the same wires.
The USB specification allows multiple device classes, including but not limited to keyboards, mice, printers, mass storage, video, and vendor specific items. Some physical devices appear as two or more logical USB devices, such as a webcam that has an audio and a video USB connection. USB data is sent in packets, some of which signal devices being added or removed. Other packet types are data, signaling such as acknowledgement of data received or ready, and other types.
Malicious USB devices have been created that utilize weaknesses in the USB infrastructure to attack unprotected hosts and devices through combinations of malformed packets, device spoofing, electrical tricks, and other methods. For example, a flash drive may have a keyboard controller hidden in it that only activates after the drive has been inserted for some length of time. The keyboard activates, unsuspecting USB infrastructure connects it to the PC, and the keyboard sends commands for malicious activity on the host PC. There are many other types of attacks.